#include <REGX52.H>
#include <LCD1602.H>
#include <DS18B02.H>
#include <delay.H>

float T;

void main()
{
	DS18B20_ConvertT();				//上电先转换一次温度，防止第一次读数据错误
	Delay(1000);					//等待转换完成
	LCD_Init();
	LCD_ShowString(1,1,"Temperature:");
	while(1)
	{
		DS18B20_ConvertT();
		T = DS18B20_ReadT();
		if(T<0)
		{
			LCD_ShowChar(2,1,'-');	//显示负号
			T=-T;					//将温度变为正数
		}
		else
		{
			LCD_ShowChar(2,1,'+');	//显示负号
		}
		LCD_ShowNum(2,2,T,3);		//显示温度整数部分
		LCD_ShowChar(2,5,'.');		//显示小数点
		LCD_ShowNum(2,6,(unsigned long)(T*10000)%10000,4);//显示温度小数部分
		//先乘以 10000，把小数变整数，int放不下了，用long放，然后%10000，就是四位小数
	}
}